using System;
using System.Collections.Generic;

namespace Managistics.Model
{
    [Serializable()]
    public class SaleOrder : Entity<string>
    {
        private Customer _customer;
        private Employee _employee;
        private DateTime _orderdate;
        private DateTime _requestdate;
        private DateTime _shippingDate;
        private string _shipAddress;
        private bool? _statusC;
        private string _noteC;
        private string _payConditionC;
        private DateTime? _completeDateCo;
        private bool? _typeVat;
        private string _confirmnote;
        private string _contactname;
        private bool? _typeorder;
        private string _title;
        private short _numOutput;
        private short _numReturn;
        public SaleOrder() {
            SaleOrderDetail = new List<SaleOrderDetail>();
        }
        public virtual string Orderid {
            get {
                return this._id;
            }
            set {
                this._id = value;
            }
        }
        public virtual Customer Customer {
            get {
                return this._customer;
            }
            set {
                this._customer = value;
            }
        }
        public virtual Employee Employee {
            get {
                return this._employee;
            }
            set {
                this._employee = value;
            }
        }
        public virtual DateTime Orderdate {
            get {
                return this._orderdate;
            }
            set {
                this._orderdate = value;
            }
        }
        public virtual DateTime Requestdate {
            get {
                return this._requestdate;
            }
            set {
                this._requestdate = value;
            }
        }
        public virtual DateTime ShippingDate {
            get {
                return this._shippingDate;
            }
            set {
                this._shippingDate = value;
            }
        }
        public virtual string ShipAddress {
            get {
                return this._shipAddress;
            }
            set {
                this._shipAddress = value;
            }
        }
        public virtual bool? Status {
            get {
                return this._statusC;
            }
            set {
                this._statusC = value;
            }
        }
        public virtual string Note {
            get {
                return this._noteC;
            }
            set {
                this._noteC = value;
            }
        }
        public virtual string PayCondition {
            get {
                return this._payConditionC;
            }
            set {
                this._payConditionC = value;
            }
        }
        public virtual DateTime? CompleteDate {
            get {
                return this._completeDateCo;
            }
            set {
                this._completeDateCo = value;
            }
        }
        public virtual bool? TypeVat {
            get {
                return this._typeVat;
            }
            set {
                this._typeVat = value;
            }
        }
        public virtual string Confirmnote {
            get {
                return this._confirmnote;
            }
            set {
                this._confirmnote = value;
            }
        }
        public virtual string Contactname {
            get {
                return this._contactname;
            }
            set {
                this._contactname = value;
            }
        }
        public virtual bool? Typeorder {
            get {
                return this._typeorder;
            }
            set {
                this._typeorder = value;
            }
        }
        public virtual string Title {
            get {
                return this._title;
            }
            set {
                this._title = value;
            }
        }
        public virtual short NumOutput {
            get {
                return this._numOutput;
            }
            set {
                this._numOutput = value;
            }
        }
        public virtual short NumReturn {
            get {
                return this._numReturn;
            }
            set {
                this._numReturn = value;
            }
        }
        public virtual IList<SaleOrderDetail> SaleOrderDetail { get; set; }
    }

}
